Streaming Music Using Authentication Information

ABSTRACT

Techniques provided herein may facilitate set-up of an audio system with audio content services that have been previously registered on a second system. An example technique involves a computing device maintaining data representing a list of audio services from which an audio system can receive streaming music and data indicating that a first audio service is registered with the audio system. The device receives data indicating a second audio service added to the list of audio services. An application on the computing device may be configured to receive streaming music from the second audio service using particular authentication information. The device causes display of a graphical representation of the second service indicating that the particular authentication information is available from the application. The device may detect a selection of the second service and cause the audio system to receive streaming music from the second service using the particular authentication information.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.14/528,904, filed on Oct. 30, 2014, which is hereby incorporated byreference in its entirety. U.S. application Ser. No. 14/528,904 is acontinuation of U.S. application Ser. No. 13/630,616, filed Sep. 28,2012 and issued as U.S. Pat. No. 8,910,265, which is hereby incorporatedby reference in its entirety.

FIELD OF THE DISCLOSURE

The disclosure is related to consumer goods and, more particularly, tomethods, systems, products, features, services, and other items directedto media playback or some aspect thereof.

BACKGROUND

Technological advancements have increased the accessibility of musiccontent, as well as other types of media, such as television content,movies, and interactive content. For example, a user can access audio,video, or both audio and video content over the Internet through anonline store, an Internet radio station, a music service, a movieservice, and so on, in addition to the more traditional avenues ofaccessing audio and video content. Demand for audio, video, and bothaudio and video content inside and outside of the home continues toincrease.

BRIEF DESCRIPTION OF THE DRAWINGS

Features, aspects, and advantages of the presently disclosed technologyare better understood with regard to the following description, appendedclaims, and accompanying drawings where:

FIG. 1 shows an example configuration in which certain embodiments maybe practiced;

FIG. 2A shows an illustration of an example zone player having abuilt-in amplifier and transducers;

FIG. 2B shows an illustration of an example zone player having abuilt-in amplifier and connected to external speakers;

FIG. 2C shows an illustration of an example zone player connected to anA/V receiver and speakers;

FIG. 3 shows an illustration of an example controller;

FIG. 4 shows an internal functional block diagram of an example zoneplayer;

FIG. 5 shows an internal functional block diagram of an examplecontroller;

FIG. 6 shows an example ad-hoc playback network;

FIG. 7 shows a system including a plurality of networks including acloud-based network and at least one local playback network;

FIG. 8A shows an example audio system user interface prompting a user tosetup audio services for the audio system;

FIG. 8B shows an example audio system user interface listing audioservices supported by the audio system;

FIG. 9 shows an example flow diagram for registering audio services withan audio system; and

FIG. 10 shows an example block diagram of an interface between acontroller device and audio services.

In addition, the drawings are for the purpose of illustrating exampleembodiments, but it is understood that the inventions are not limited tothe arrangements and instrumentality shown in the drawings.

DETAILED DESCRIPTION I. Overview

Listening to audio content out loud can be a social activity thatinvolves family, friends, or both. Audio content may include, forinstance, music, talk radio, books, audio from television, and otheraudible material. For example, in a household, people may play music outloud at parties and other social gatherings. In such an environment,people may wish to play the music in one listening zone or multiplelistening zones simultaneously, such that the music in each listeningzone may be synchronized, without audible echoes or glitches. Listeningto audio content out loud can also be an individual experience. Forexample, an individual may play music out loud for themselves in themorning before work, in the evening during dinner, or at other timesthroughout the day at home, work, or on the road. For these individualexperiences, the individual may choose to either use headphones or limitthe out loud playback of audio content to a single zone or area.

In one example, an audio system may include one or more audio players,often referred to herein as zone players or playback devices or players,and controllers, which may also be a player in some instances. Acontroller may be used to control the audio system, and can includecapabilities for, among other things, browsing and selecting audiocontent for playback, viewing and editing audio content in one or moreplayback queues, or grouping and ungrouping zone players into one ormore listening zones, etc. According to an embodiment, the audio systemmay operate as a distributed system such that each controller has fullcontrol over the entire audio system, and each player has the ability toplay audio content from either a same audio source or a different audiosource as another player.

In one case, the different audio sources may be different audio contentservices available over the Internet. Each of the variety of audiocontent services may offer a different audio content experience. Forexample, some audio content services may provide seemingly infinitemusic libraries for a user to explore, while some other audio contentservices provide automatically generated playlists according to theuser's preferences. Accordingly, a user of the audio system may beregistered with more than one audio content service, and may wish tosetup the audio system with each of the audio content services the useris registered with.

In one case, during setup of the audio system, the user may be providedwith a list of audio content services supported by the audio system.While such a setup may provide the user with a comprehensive list ofoptions for the user to explore, the user may need to look through thepotentially long list of supported audio content services to find theaudio content services the user is already registered with, and may wishto setup with the audio system. In some cases, this may be cumbersome.As such, the present application provides methods and systems forassisting the user with setting up the audio system with audio contentservices the user is registered with, such that the user may spend lesstime configuring the audio system, and begin enjoying audio contentsooner.

Example systems, methods, apparatus, and articles of manufacturedisclosed and described herein to detect and register audio serviceswith an audio system. In some embodiments, a first audio service isselected from a list of a plurality of audio services supported by anaudio system. A determination is made that a first applicationcorresponding to the first audio service is present on a computingdevice associated with the audio system. The first audio service isregistered with the audio system based on the determination that thefirst application is present on the computing device.

Many other embodiments are provided and described herein.

II. Example Operating Environment

Referring now to the drawings, in which like numerals can refer to likeparts throughout the figures, FIG. 1 shows an example systemconfiguration 100 in which one or more embodiments disclosed herein canbe practiced or implemented.

By way of illustration, the system configuration 100 represents a homewith multiple zones, though the home could have been configured withonly one zone. Each zone, for example, may represent a different room orspace, such as an office, bathroom, bedroom, kitchen, dining room,family room, home theater room, utility or laundry room, and patio. Asingle zone might also include multiple rooms or spaces if soconfigured. One or more of zone players 102-124 are shown in eachrespective zone. A zone player 102-124, also referred to as a playbackdevice, multimedia unit, speaker, player, and so on, provides audio,video, and/or audiovisual output. A controller 130 (e.g., shown in thekitchen for purposes of illustration) provides control to the systemconfiguration 100. Controller 130 may be fixed to a zone, oralternatively, mobile such that it can be moved about the zones. Thesystem configuration 100 may also include more than one controller 130.The system configuration 100 illustrates an example whole house audiosystem, though it is understood that the technology described herein isnot limited to its particular place of application or to an expansivesystem like a whole house audio system 100 of FIG. 1.

a. Example Zone Players

FIGS. 2A, 2B, and 2C show example types of zone players. Zone players200, 202, and 204 of FIGS. 2A, 2B, and 2C, respectively, can correspondto any of the zone players 102-124 of FIG. 1, for example. In someembodiments, audio is reproduced using only a single zone player, suchas by a full-range player. In some embodiments, audio is reproducedusing two or more zone players, such as by using a combination offull-range players or a combination of full-range and specializedplayers. In some embodiments, zone players 200-204 may also be referredto as a “smart speaker,” because they contain processing capabilitiesbeyond the reproduction of audio, more of which is described below.

FIG. 2A illustrates zone player 200 that includes sound producingequipment 208 capable of reproducing full-range sound. The sound maycome from an audio signal that is received and processed by zone player200 over a wired or wireless data network. Sound producing equipment 208includes one or more built-in amplifiers and one or more acoustictransducers (e.g., speakers). A built-in amplifier is described morebelow with respect to FIG. 4. A speaker or acoustic transducer caninclude, for example, any of a tweeter, a mid-range driver, a low-rangedriver, and a subwoofer. In some embodiments, zone player 200 can bestatically or dynamically configured to play stereophonic audio,monaural audio, or both. In some embodiments, zone player 200 isconfigured to reproduce a subset of full-range sound, such as when zoneplayer 200 is grouped with other zone players to play stereophonicaudio, monaural audio, and/or surround audio or when the audio contentreceived by zone player 200 is less than full-range.

FIG. 2B illustrates zone player 202 that includes a built-in amplifierto power a set of detached speakers 210. A detached speaker can include,for example, any type of loudspeaker. Zone player 202 may be configuredto power one, two, or more separate loudspeakers. Zone player 202 may beconfigured to communicate an audio signal (e.g., right and left channelaudio or more channels depending on its configuration) to the detachedspeakers 210 via a wired path.

FIG. 2C illustrates zone player 204 that does not include a built-inamplifier, but is configured to communicate an audio signal, receivedover a data network, to an audio (or “audio/video”) receiver 214 withbuilt-in amplification.

Referring back to FIG. 1, in some embodiments, one, some, or all of thezone players 102 to 124 can retrieve audio directly from a source. Forexample, a zone player may contain a playlist or queue of audio items tobe played (also referred to herein as a “playback queue”). Each item inthe queue may comprise a uniform resource identifier (URI) or some otheridentifier. The URI or identifier can point the zone player to the audiosource. The source might be found on the Internet (e.g., the cloud),locally from another device over data network 128 (described furtherbelow), from the controller 130, stored on the zone player itself, orfrom an audio source communicating directly to the zone player. In someembodiments, the zone player can reproduce the audio itself, send it toanother zone player for reproduction, or both where the audio is playedby the zone player and one or more additional zone players in synchrony.In some embodiments, the zone player can play a first audio content (ornot play at all), while sending a second, different audio content toanother zone player(s) for reproduction.

By way of illustration, SONOS, Inc. of Santa Barbara, Calif. presentlyoffers for sale zone players referred to as a “PLAY:5,” “PLAY:3,”“CONNECT:AMP,” “CONNECT,” and “SUB.” Any other past, present, and/orfuture zone players can additionally or alternatively be used toimplement the zone players of example embodiments disclosed herein.Additionally, it is understood that a zone player is not limited to theparticular examples illustrated in FIGS. 2A, 2B, and 2C or to the SONOSproduct offerings. For example, a zone player may include a wired orwireless headphone. In yet another example, a zone player might includea sound bar for television. In yet another example, a zone player caninclude or interact with a docking station for an Apple IPOD™ or similardevice.

b. Example Controllers

FIG. 3 illustrates an example wireless controller 300 in docking station302. By way of illustration, controller 300 can correspond tocontrolling device 130 of FIG. 1. Docking station 302, if provided, maybe used to charge a battery of controller 300. In some embodiments,controller 300 is provided with a touch screen 304 that allows a user tointeract through touch with the controller 300, for example, to retrieveand navigate a playlist of audio items, control operations of one ormore zone players, and provide overall control of the systemconfiguration 100. In certain embodiments, any number of controllers canbe used to control the system configuration 100. In some embodiments,there can be a limit set on the number of controllers that can controlthe system configuration 100. The controllers might be wireless likewireless controller 300 or wired to data network 128.

In some embodiments, if more than one controller is used in system 100,then each controller may be coordinated to display common content, andmay all be dynamically updated to indicate changes made from a singlecontroller. Coordination can occur, for instance, by a controllerperiodically requesting a state variable directly or indirectly from oneor more zone players; the state variable may provide information aboutsystem 100, such as current zone group configuration, what is playing inone or more zones, volume levels, and other items of interest. The statevariable may be passed around on data network 128 between zone players(and controllers, if so desired) as needed or as often as programmed.

In addition, an application running on any network-enabled portabledevice, such as an IPHONE™, IPAD™, ANDROID™ powered phone, or any othersmart phone or network-enabled device can be used as controller 130. Anapplication running on a laptop or desktop personal computer (PC) orMac™ can also be used as controller 130. Such controllers may connect tosystem 100 through an interface with data network 128, a zone player, awireless router, or using some other configured connection path. Examplecontrollers offered by Sonos, Inc. of Santa Barbara, Calif. include a“Controller 200,” “SONOS® CONTROL,” “SONOS® Controller for IPHONE™,”“SONOS® Controller for IPAD™,” “SONOS® Controller for ANDROID™,” “SONOS®Controller for MAC™ or PC.”

c. Example Data Connection

Zone players 102 to 124 of FIG. 1 are coupled directly or indirectly toa data network, such as data network 128. Controller 130 may also becoupled directly or indirectly to data network 128 or individual zoneplayers. Data network 128 is represented by an octagon in the figure tostand out from other representative components. While data network 128is shown in a single location, it is understood that such a network isdistributed in and around system 100. Particularly, data network 128 canbe a wired network, a wireless network, or a combination of both wiredand wireless networks. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 based on aproprietary mesh network. In some embodiments, one or more of the zoneplayers 102-124 are wirelessly coupled to data network 128 using anon-mesh topology. In some embodiments, one or more of the zone players102-124 are coupled via a wire to data network 128 using Ethernet orsimilar technology. In addition to the one or more zone players 102-124connecting to data network 128, data network 128 can further allowaccess to a wide area network, such as the Internet.

In some embodiments, connecting any of the zone players 102-124, or someother connecting device, to a broadband router, can create data network128. Other zone players 102-124 can then be added wired or wirelessly tothe data network 128. For example, a zone player (e.g., any of zoneplayers 102-124) can be added to the system configuration 100 by simplypressing a button on the zone player itself (or perform some otheraction), which enables a connection to be made to data network 128. Thebroadband router can be connected to an Internet Service Provider (ISP),for example. The broadband router can be used to form another datanetwork within the system configuration 100, which can be used in otherapplications (e.g., web surfing). Data network 128 can also be used inother applications, if so programmed. An example, second network mayimplement SONOSNET™ protocol, developed by SONOS, Inc. of Santa Barbara.SONOSNET™ represents a secure, AES-encrypted, peer-to-peer wireless meshnetwork. Alternatively, in certain embodiments, the data network 128 isthe same network, such as a traditional wired or wireless network, usedfor other applications in the household.

d. Example Zone Configurations

A particular zone can contain one or more zone players. For example, thefamily room of FIG. 1 contains two zone players 106 and 108, while thekitchen is shown with one zone player 102. In another example, the hometheater room contains additional zone players to play audio from a 5.1channel or greater audio source (e.g., a movie encoded with 5.1 orgreater audio channels). In some embodiments, one can position a zoneplayer in a room or space and assign the zone player to a new orexisting zone via controller 130. As such, zones may be created,combined with another zone, removed, and given a specific name (e.g.,“Kitchen”), if so desired and programmed to do so with controller 130.Moreover, in some embodiments, zone configurations may be dynamicallychanged even after being configured using controller 130 or some othermechanism.

In some embodiments, if a zone contains two or more zone players, suchas the two zone players 106 and 108 in the family room, then the twozone players 106 and 108 can be configured to play the same audio sourcein synchrony, or the two zone players 106 and 108 can be paired to playtwo separate sounds in left and right channels, for example. In otherwords, the stereo effects of a sound can be reproduced or enhancedthrough the two zone players 106 and 108, one for the left sound and theother for the right sound. In certain embodiments, paired zone players(also referred to as “bonded zone players”) can play audio in synchronywith other zone players in the same or different zones.

In some embodiments, two or more zone players can be sonicallyconsolidated to form a single, consolidated zone player. A consolidatedzone player (though made up of multiple, separate devices) can beconfigured to process and reproduce sound differently than anunconsolidated zone player or zone players that are paired, because aconsolidated zone player will have additional speaker drivers from whichsound can be passed. The consolidated zone player can further be pairedwith a single zone player or yet another consolidated zone player. Eachplayback device of a consolidated playback device can be set in aconsolidated mode, for example.

According to some embodiments, one can continue to do any of: group,consolidate, and pair zone players, for example, until a desiredconfiguration is complete. The actions of grouping, consolidation, andpairing are preferably performed through a control interface, such asusing controller 130, and not by physically connecting and re-connectingspeaker wire, for example, to individual, discrete speakers to createdifferent configurations. As such, certain embodiments described hereinprovide a more flexible and dynamic platform through which soundreproduction can be offered to the end-user.

e. Example Audio Sources

In some embodiments, each zone can play from the same audio source asanother zone or each zone can play from a different audio source. Forexample, someone can be grilling on the patio and listening to jazzmusic via zone player 124, while someone is preparing food in thekitchen and listening to classical music via zone player 102. Further,someone can be in the office listening to the same jazz music via zoneplayer 110 that is playing on the patio via zone player 124. In someembodiments, the jazz music played via zone players 110 and 124 isplayed in synchrony. Synchronizing playback amongst zones allows forsomeone to pass through zones while seamlessly (or substantiallyseamlessly) listening to the audio. Further, zones can be put into a“party mode” such that all associated zones will play audio insynchrony.

Sources of audio content to be played by zone players 102-124 arenumerous. In some embodiments, music on a zone player itself may beaccessed and played. In some embodiments, music from a personal librarystored on a computer or networked-attached storage (NAS) may be accessedvia the data network 128 and played. In some embodiments, Internet radiostations, shows, and podcasts can be accessed via the data network 128.Music or cloud services that let a user stream and/or download music andaudio content can be accessed via the data network 128. Further, musiccan be obtained from traditional sources, such as a turntable or CDplayer, via a line-in connection to a zone player, for example. Audiocontent can also be accessed using a different protocol, such asAIRPLAY™, which is a wireless technology by Apple, Inc., for example.Audio content received from one or more sources can be shared amongstthe zone players 102 to 124 via data network 128 and/or controller 130.The above-disclosed sources of audio content are referred to herein asnetwork-based audio information sources. However, network-based audioinformation sources are not limited thereto.

In some embodiments, the example home theater zone players 116, 118, 120are coupled to an audio information source such as a television 132. Insome examples, the television 132 is used as a source of audio for thehome theater zone players 116, 118, 120, while in other examples audioinformation from the television 132 can be shared with any of the zoneplayers 102-124 in the audio system 100.

III. Example Zone Players

Referring now to FIG. 4, there is shown an example block diagram of azone player 400 in accordance with an embodiment. Zone player 400includes a network interface 402, a processor 408, a memory 410, anaudio processing component 412, one or more modules 414, an audioamplifier 416, and a speaker unit 418 coupled to the audio amplifier416. FIG. 2A shows an example illustration of such a zone player. Othertypes of zone players may not include the speaker unit 418 (e.g., suchas shown in FIG. 2B) or the audio amplifier 416 (e.g., such as shown inFIG. 2C). Further, it is contemplated that the zone player 400 can beintegrated into another component. For example, the zone player 400could be constructed as part of a television, lighting, or some otherdevice for indoor or outdoor use.

In some embodiments, network interface 402 facilitates a data flowbetween zone player 400 and other devices on a data network 128. In someembodiments, in addition to getting audio from another zone player ordevice on data network 128, zone player 400 may access audio directlyfrom the audio source, such as over a wide area network or on the localnetwork. In some embodiments, the network interface 402 can furtherhandle the address part of each packet so that it gets to the rightdestination or intercepts packets destined for the zone player 400.Accordingly, in certain embodiments, each of the packets includes anInternet Protocol (IP)-based source address as well as an IP-baseddestination address.

In some embodiments, network interface 402 can include one or both of awireless interface 404 and a wired interface 406. The wireless interface404, also referred to as a radio frequency (RF) interface, providesnetwork interface functions for the zone player 400 to wirelesslycommunicate with other devices (e.g., other zone player(s), speaker(s),receiver(s), component(s) associated with the data network 128, and soon) in accordance with a communication protocol (e.g., any wirelessstandard including IEEE 802.11a, 802.11b, 802.11g, 802.11n, or 802.15).Wireless interface 404 may include one or more radios. To receivewireless signals and to provide the wireless signals to the wirelessinterface 404 and to transmit wireless signals, the zone player 400includes one or more antennas 420. The wired interface 406 providesnetwork interface functions for the zone player 400 to communicate overa wire with other devices in accordance with a communication protocol(e.g., IEEE 802.3). In some embodiments, a zone player includes multiplewireless 404 interfaces. In some embodiments, a zone player includesmultiple wired 406 interfaces. In some embodiments, a zone playerincludes both of the interfaces 404 and 406. In some embodiments, a zoneplayer 400 includes only the wireless interface 404 or the wiredinterface 406.

In some embodiments, the processor 408 is a clock-driven electronicdevice that is configured to process input data according toinstructions stored in memory 410. The memory 410 is data storage thatcan be loaded with one or more software module(s) 414, which can beexecuted by the processor 408 to achieve certain tasks. In theillustrated embodiment, the memory 410 is a tangible machine-readablemedium storing instructions that can be executed by the processor 408.In some embodiments, a task might be for the zone player 400 to retrieveaudio data from another zone player or a device on a network (e.g.,using a uniform resource locator (URL) or some other identifier). Insome embodiments, a task may be for the zone player 400 to send audiodata to another zone player or device on a network. In some embodiments,a task may be for the zone player 400 to synchronize playback of audiowith one or more additional zone players. In some embodiments, a taskmay be to pair the zone player 400 with one or more zone players tocreate a multi-channel audio environment. Additional or alternativetasks can be achieved via the one or more software module(s) 414 and theprocessor 408.

The audio processing component 412 can include one or moredigital-to-analog converters (DAC), an audio preprocessing component, anaudio enhancement component or a digital signal processor, and so on. Insome embodiments, the audio processing component 412 may be part ofprocessor 408. In some embodiments, the audio that is retrieved via thenetwork interface 402 is processed and/or intentionally altered by theaudio processing component 412. Further, the audio processing component412 can produce analog audio signals. The processed analog audio signalsare then provided to the audio amplifier 416 for play back throughspeakers 418. In addition, the audio processing component 412 caninclude circuitry to process analog or digital signals as inputs to playfrom zone player 400, send to another zone player on a network, or bothplay and send to another zone player on the network. An example inputincludes a line-in connection (e.g., an auto-detecting 3.5 mm audioline-in connection).

The audio amplifier 416 is a device(s) that amplifies audio signals to alevel for driving one or more speakers 418. The one or more speakers 418can include an individual transducer (e.g., a “driver”) or a completespeaker system that includes an enclosure including one or more drivers.A particular driver can be a subwoofer (e.g., for low frequencies), amid-range driver (e.g., for middle frequencies), and a tweeter (e.g.,for high frequencies), for example. An enclosure can be sealed orported, for example. Each transducer may be driven by its own individualamplifier.

A commercial example, presently known as the PLAY:5™, is a zone playerwith a built-in amplifier and speakers that is capable of retrievingaudio directly from the source, such as on the Internet or on the localnetwork, for example. In particular, the PLAY:5™ is a five-amp,five-driver speaker system that includes two tweeters, two mid-rangedrivers, and one woofer. When playing audio content via the PLAY:5, theleft audio data of a track is sent out of the left tweeter and leftmid-range driver, the right audio data of a track is sent out of theright tweeter and the right mid-range driver, and mono bass is sent outof the subwoofer. Further, both mid-range drivers and both tweeters havethe same equalization (or substantially the same equalization). That is,they are both sent the same frequencies but from different channels ofaudio. Audio from Internet radio stations, online music and videoservices, downloaded music, analog audio inputs, television, DVD, and soon, can be played from the PLAY:5™.

IV. Example Controller

Referring now to FIG. 5, there is shown an example block diagram forcontroller 500, which can correspond to the controlling device 130 inFIG. 1. Controller 500 can be used to facilitate the control ofmulti-media applications, automation and others in a system. Inparticular, the controller 500 may be configured to facilitate aselection of a plurality of audio sources available on the network andenable control of one or more zone players (e.g., the zone players102-124 in FIG. 1) through a wireless or wired network interface 508.According to one embodiment, the wireless communications is based on anindustry standard (e.g., infrared, radio, wireless standards includingIEEE 802.11a, 802.11b, 802.11g, 802.11n, 802.15, and so on). Further,when a particular audio is being accessed via the controller 500 orbeing played via a zone player, a picture (e.g., album art) or any otherdata, associated with the audio and/or audio source can be transmittedfrom a zone player or other electronic device to controller 500 fordisplay.

Controller 500 is provided with a screen 502 and an input interface 514that allows a user to interact with the controller 500, for example, tonavigate a playlist of many multimedia items and to control operationsof one or more zone players. The screen 502 on the controller 500 can bean LCD screen, for example. The screen 500 communicates with and iscommanded by a screen driver 504 that is controlled by a microcontroller(e.g., a processor) 506. The memory 510 can be loaded with one or moreapplication modules 512 that can be executed by the microcontroller 506with or without a user input via the user interface 514 to achievecertain tasks. In some embodiments, an application module 512 isconfigured to facilitate grouping a number of selected zone players intoa zone group and synchronizing the zone players for audio play back. Insome embodiments, an application module 512 is configured to control theaudio sounds (e.g., volume) of the zone players in a zone group. Inoperation, when the microcontroller 506 executes one or more of theapplication modules 512, the screen driver 504 generates control signalsto drive the screen 502 to display an application specific userinterface accordingly.

The controller 500 includes a network interface 508 that facilitateswired or wireless communication with a zone player. In some embodiments,the commands such as volume control and audio playback synchronizationare sent via the network interface 508. In some embodiments, a savedzone group configuration is transmitted between a zone player and acontroller via the network interface 508. The controller 500 can controlone or more zone players, such as 102-124 of FIG. 1. There can be morethan one controller for a particular system, and each controller mayshare common information with another controller, or retrieve the commoninformation from a zone player, if such a zone player storesconfiguration data (e.g., such as a state variable). Further, acontroller can be integrated into a zone player.

It should be noted that other network-enabled devices such as anIPHONE™, IPAD™ or any other smart phone or network-enabled device (e.g.,a networked computer such as a PC or MAC™) can also be used as acontroller to interact or control zone players in a particularenvironment. In some embodiments, a software application or upgrade canbe downloaded onto a network-enabled device to perform the functionsdescribed herein.

In certain embodiments, a user can create a zone group (also referred toas a bonded zone) including at least two zone players from thecontroller 500. The zone players in the zone group can play audio in asynchronized fashion, such that all of the zone players in the zonegroup play back an identical audio source or a list of identical audiosources in a synchronized manner such that no (or substantially no)audible delays or hiccups are to be heard. Similarly, in someembodiments, when a user increases the audio volume of the group fromthe controller 500, the signals or data of increasing the audio volumefor the group are sent to one of the zone players and causes other zoneplayers in the group to be increased together in volume.

A user via the controller 500 can group zone players into a zone groupby activating a “Link Zones” or “Add Zone” soft button, or de-grouping azone group by activating an “Unlink Zones” or “Drop Zone” button. Forexample, one mechanism for ‘joining’ zone players together for audioplay back is to link a number of zone players together to form a group.To link a number of zone players together, a user can manually link eachzone player or room one after the other. For example, assume that thereis a multi-zone system that includes the following zones: Bathroom,Bedroom, Den, Dining Room, Family Room, and Foyer.

In certain embodiments, a user can link any number of the six zoneplayers, for example, by starting with a single zone and then manuallylinking each zone to that zone.

In certain embodiments, a set of zones can be dynamically linkedtogether using a command to create a zone scene or theme (subsequent tofirst creating the zone scene). For instance, a “Morning” zone scenecommand can link the Bedroom, Office, and Kitchen zones together in oneaction. Without this single command, the user would manually andindividually link each zone. The single command may include a mouseclick, a double mouse click, a button press, a gesture, or some otherprogrammed action. Other kinds of zone scenes can be programmed.

In certain embodiments, a zone scene can be triggered based on time(e.g., an alarm clock function). For instance, a zone scene can be setto apply at 8:00 am. The system can link appropriate zonesautomatically, set specific music to play, and then stop the music aftera defined duration. Although any particular zone can be triggered to an“On” or “Off” state based on time, for example, a zone scene enables anyzone(s) linked to the scene to play a predefined audio (e.g., afavorable song, a predefined playlist) at a specific time and/or for aspecific duration. If, for any reason, the scheduled music failed to beplayed (e.g., an empty playlist, no connection to a share, failedUniversal Plug and Play (UPnP), no Internet connection for an InternetRadio station, and so on), a backup buzzer can be programmed to sound.The buzzer can include a sound file that is stored in a zone player, forexample.

V. Example Ad-Hoc Network

Certain particular examples are now provided in connection with FIG. 6to describe, for purposes of illustration, certain systems and methodsto provide and facilitate connection to a playback network. FIG. 6 showsthat there are three zone players 602, 604 and 606 and a controller 608that form a network branch that is also referred to as an Ad-Hoc network610. The network 610 may be wireless, wired, or a combination of wiredand wireless. In general, an Ad-Hoc (or “spontaneous”) network is alocal area network or other small network in which there is generally noone access point for all traffic. With an established Ad-Hoc network610, the devices 602, 604, 606 and 608 can all communicate with eachother in a “peer-to-peer” style of communication, for example.Furthermore, devices may join and/or leave from the network 610, and thenetwork 610 will automatically reconfigure itself without needing theuser to reconfigure the network 610. While an Ad-Hoc network isreferenced in FIG. 6, it is understood that a playback network may bebased on a type of network that is completely or partially differentfrom an Ad-Hoc network.

Using the Ad-Hoc network 610, the devices 602, 604, 606, and 608 canshare or exchange one or more audio sources and be dynamically groupedto play the same or different audio sources. For example, the devices602 and 604 are grouped to playback one piece of music, and at the sametime, the device 606 plays back another piece of music. In other words,the devices 602, 604, 606 and 608, as shown in FIG. 6, form a HOUSEHOLDthat distributes audio and/or reproduces sound. As used herein, the termHOUSEHOLD (provided in uppercase letters to disambiguate from the user'sdomicile) is used to represent a collection of networked devices thatare cooperating to provide an application or service. An instance of aHOUSEHOLD is identified with a household 610 (or household identifier),though a HOUSEHOLD may be identified with a different area or place.

In certain embodiments, a household identifier (HHID) is a short stringor an identifier that is computer-generated to help ensure that it isunique. Accordingly, the network 610 can be characterized by a uniqueHHID and a unique set of configuration variables or parameters, such aschannels (e.g., respective frequency bands), service set identifier(SSID) (a sequence of alphanumeric characters as a name of a wirelessnetwork), and WEP keys (wired equivalent privacy or other securitykeys). In certain embodiments, SSID is set to be the same as HHID.

In certain embodiments, each HOUSEHOLD includes two types of networknodes: a control point (CP) and a zone player (ZP). The control pointcontrols an overall network setup process and sequencing, including anautomatic generation of required network parameters (e.g., WEP keys). Inan embodiment, the CP also provides the user with a HOUSEHOLDconfiguration user interface. The CP function can be provided by acomputer running a CP application module, or by a handheld controller(e.g., the controller 308) also running a CP application module, forexample. The zone player is any other device on the network that isplaced to participate in the automatic configuration process. The ZP, asa notation used herein, includes the controller 308 or a computingdevice, for example. In some embodiments, the functionality, or certainparts of the functionality, in both the CP and the ZP are combined at asingle node (e.g., a ZP contains a CP or vice-versa).

In certain embodiments, configuration of a HOUSEHOLD involves multipleCPs and ZPs that rendezvous and establish a known configuration suchthat they can use a standard networking protocol (e.g., IP over Wired orWireless Ethernet) for communication. In an embodiment, two types ofnetworks/protocols are employed: Ethernet 802.3 and Wireless 802.11g.Interconnections between a CP and a ZP can use either of thenetworks/protocols. A device in the system as a member of a HOUSEHOLDcan connect to both networks simultaneously.

In an environment that has both networks in use, it is assumed that atleast one device in a system is connected to both as a bridging device,thus providing bridging services between wired/wireless networks forothers. The zone player 606 in FIG. 6 is shown to be connected to bothnetworks, for example. The connectivity to the network 612 is based onEthernet and/or Wireless, while the connectivity to other devices 602,604 and 608 is based on Wireless and Ethernet if so desired.

It is understood, however, that in some embodiments each zone player606, 604, 602 may access the Internet when retrieving media from thecloud (e.g., the Internet) via the bridging device. For example, zoneplayer 602 may contain a uniform resource locator (URL) that specifiesan address to a particular audio track in the cloud. Using the URL, thezone player 602 may retrieve the audio track from the cloud, andultimately play the audio out of one or more zone players.

VI. Example System Configuration

FIG. 7 shows a system including a plurality of networks including acloud-based network and at least one local playback network. A localplayback network includes a plurality of playback devices or players,though it is understood that the playback network may contain only oneplayback device. In certain embodiments, each player has an ability toretrieve its content for playback. Control and content retrieval can bedistributed or centralized, for example. Input can include streamingcontent provider input, third party application input, mobile deviceinput, user input, and/or other playback network input into the cloudfor local distribution and playback.

As illustrated by the example system 700 of FIG. 7, a plurality ofcontent providers 720-750 can be connected to one or more local playbacknetworks 760-770 via a cloud and/or other network 710. Using the cloud710, a multimedia audio system 720 (e.g., Sonos™), a mobile device 730,a third party application 740, a content provider 750 and so on canprovide multimedia content (requested or otherwise) to local playbacknetworks 760, 770. Within each local playback network 760, 770, acontroller 762, 772 and a playback device 764, 774 can be used toplayback audio content.

VII. Example Method for Audio Content Playback Management

In some embodiments of the present application, methods and systems areprovided for assisting the user with setting up an audio system withaudio content services the user is registered with and/or already uses.In particular, the assisted registration of audio content services withthe audio system may be based on automatically detecting audio contentservice applications on a personal device such as a mobile phone,tablet, PC, MAC™, smart TV, and so on. In one example, in addition toautomatically detecting audio content service applications on thepersonal device, content from the personal device may also beautomatically added to a music library for playback in an audio systembased on auto-detecting the local content on a personal device.

As discussed above, an example audio system of the present applicationmay provide support for multiple audio sources, and the multiple audiosources may be accessed by a user of the system using an audio systemcontroller. The example audio system may be flexible and dynamic, andmay support audio playback of content that is both local and remote. Inone example, the local audio content may include audio content that maybe accessed from a local area network (LAN) such as audio content storedon a personal device (e.g., such as a mobile phone, wireless tablet, PC,MAC™, smart TV, and so on) or a network attached storage (NAS) device.In another example, the remote audio content may include audio contentthat may be accessed from a “cloud network” (i.e., over the Internet)such as from streaming audio content services or cloud-based musicstorage services.

Example streaming services may include both registration-based services(e.g., RHAPSODY®, PANDORA®, SPOTIFY®, SONGZA®, and so on) andregistration-free services (e.g., Internet radio services such as NPR®,SOMAFM®, and so on). Streaming audio content service applications mayoften provide a personal and tailored listening experience, eitherthrough explicit registration, often requiring a sign-in procedureincluding, for example, a username, a password, or a username/passwordcombination, or through implicit registration using, for example,configurable settings on the personal device. Either way, it is commonfor people to customize their experience, for example, by creating theirown “stations” or “libraries” within a particular service.

In one example, a controller such as the controller 300 or 500 describedabove may be used to setup and control the audio system. The controllermay be in the form of a dedicated controller (such as, for example, theSONOS® Controller, the SONOS® CR200, and SONOS® CR100 devices) or in theform of a software application (i.e., Controller application) that havebeen installed on another device (such as, for example, the SONOS®Controller for the IPHONE™, the SONOS® Controller for the IPAD™, theSONOS® Controller for ANDROID™, etc.). The setup of the audio system mayinvolve adding access to audio content services by the audio system,including personalized audio content services, Internet radio, local orremote music library, etc. This may be done when the audio system isfirst setup, as well as over time as new services or audio contentbecome available.

In one example, as shown in FIG. 8A, when a user uses a controller tosetup the audio system for the first time, the user may be prompted viaan interface of the controller to indicate whether the audio systemshould begin adding audio content associated with the user to a musiclibrary for the audio system to render. If the user indicates that theaudio system should begin adding audio content associated with the userto the music library, a list of audio content services supported by theaudio system may be provided, as shown in FIG. 8B. The list of supportedaudio content services may include audio content services that may alsobe accessed by the user via software applications specific to therespective audio content services (in addition to a controllerapplication for the audio system in the case the audio content serviceis supported).

In a traditional system, the controller application may provide a listof supported audio content services to the user such that the user mayselect an audio content service and register, if necessary, that servicewith the audio system. The registration process may include, forexample, entering a username/password combination for that service. Insome cases, this process may be cumbersome. For instance, the list maybe unduly long (often requiring extension elements in the list such as“More Music” as shown in FIG. 8B), the presentation of the list ofavailable services may not take into consideration musical preferencesof the user, or the registration process may require enteringinformation from the user.

In one example embodiment, the controller application may be one of manyapplications on a personal device (e.g., the SONOS® Controller for theIPHONE™, the SONOS® Controller for the PC, etc.). Other applications onthe personal device may include audio content service applications thatplayback streaming content (e.g., RHAPSODY®, PANDORA®, SPOTIFY®, SONGZA,NPR, etc.) as well as audio content service applications that provideaccess to a local library of music on the personal device (e.g.,ITUNES™). Users may add new applications over time as they learn aboutother services or content.

As mentioned previously, the controller application may automaticallydiscover applications specific to one or more of the supported audiocontent services that have been installed on the personal device. Inother words, the controller application may determine which of thesupported audio content services the user already uses via the personaldevice.

In one case, the controller application, when presenting the list ofsupported audio content services, may take into consideration thediscovered applications. In one instance, the audio content servicescorresponding to the discovered applications may be listed first in thelist of supported audio content service. In another instance, the audiocontent services may be listed according to how frequent a user may haveused the corresponding discovered applications.

In another case, the controller application may automatically, orsemi-automatically, register supported audio content services with theaudio system based on the discovered applications. In one exampleembodiment, the controller application may check the personal device forsupported audio content services during a “music setup” phase of theaudio system, as indicated above. For example, a “music setup” phase maybe used to add music services and music libraries to the audio system.In another example embodiment, the controller application may check thepersonal device for the supported audio content services when acontroller device is added to the audio system. For example, if a useradds a new controller device to the system (e.g., a new controllerapplication on a personal device), then the new controller applicationmay check the personal device for the supported audio content serviceswhen the controller device is added. In yet another example embodiment,the controller application may check the personal device for thesupported audio content services when the controller application isstarted or on a periodic basis while the application is running on thepersonal device. Whichever the case, embodiments for checking thepersonal device for supported audio content services used by the userand the automatic or semi-automatic registration of the audio contentservices to the audio system are further discussed in more detail below.

FIG. 9 shows an example flow diagram for an example method 900 forregistering audio content services with an audio system, in accordancewith at least some embodiments described herein. Method 900 shown inFIG. 9 presents an embodiment of a method that could be used in theenvironment 100 with the systems 200, 202, 204, 300, 400, and 500 forexample, in communication with a device, such as devices illustrated inFIGS. 2-5. Method 900 may include one or more operations, functions, oractions as illustrated by one or more of blocks 902-910. As illustrated,blocks 902, 904, and 908 are action blocks, and blocks 906 and 908 aredecision blocks. Although the blocks are illustrated in sequentialorder, these blocks may also be performed in parallel, and/or in adifferent order than those described herein. Also, the various blocksmay be combined into fewer blocks, divided into additional blocks,and/or removed based upon the desired implementation.

In addition, for the method 900 and other processes and methodsdisclosed herein, the flowchart shows functionality and operation of onepossible implementation of present embodiments. In this regard, eachblock may represent a module, a segment, or a portion of program code,which includes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer readable medium may include non-transitory computer readablemedium, for example, such as computer-readable media that stores datafor short periods of time like register memory, processor cache andRandom Access Memory (RAM). The computer readable medium may alsoinclude non-transitory media, such as secondary or persistent long termstorage, like read only memory (ROM), optical or magnetic disks,compact-disc read only memory (CD-ROM), for example. The computerreadable media may also be any other volatile or non-volatile storagesystems. The computer readable medium may be considered a computerreadable storage medium, for example, or a tangible storage device. Inaddition, for the method 900 and other processes and methods disclosedherein, each block in FIG. 9 may represent circuitry that is wired toperform the specific logical functions in the process.

At block 902, the method 900 may involve receiving a list of supportedaudio content services. The list of supported services may be storedlocally on the personal device or remotely on another control device, aplayback device, a storage device (e.g., PC, Mac™, NAS, etc.), a localnetwork, the “cloud network” over the Internet, or any combinationthereof. The list of supported audio content services may change overtime, for example, due to changes in business relationships or theintroduction of new services. Accordingly, the list may be updated asthe supported audio content services change.

In one example, the personal device may query the audio system for thelist of supported audio content services upon receiving indication tobegin adding audio content associated with the user to the musiclibrary. In one case, the audio system may provide the list to thepersonal device if the list is stored on the audio system. In anothercase, the audio system may relay the list from where the list is stored,to the personal device. In yet another case, the audio system may couplethe personal device with where the list is stored such that the personaldevice may receive the list of supported audio content services. Inother examples, the personal device may be configured to query where thelist is stored directly to retrieve the list of supported audio contentservices.

At block 904, the method 900 involves selecting an audio content servicefrom the list of supported audio content services. In one example, theaudio content service may be selected based on the position of the audiocontent service on the list. For instance, an audio content service fromthe top of the list of supported audio content services may be selectedfirst, and an audio content service at the bottom of the list ofsupported audio content services may be selected last. In anotherexample, the audio content service may be selected based on alphabeticalorder of the audio content service.

At block 906, the method 900 involves making a determination as towhether an application associated with the selected audio contentservice is present on the personal device. In one example, determiningthat the application corresponding to the selected audio content serviceis present on a computing device associated with the audio system mayinvolve determining an application identifier corresponding to theselected audio content service, comparing the application identifieragainst a list of application identifiers corresponding to applicationspresent on the computing device, and determining that the applicationidentifier matches one of application identifiers on the list ofapplication identifiers corresponding to applications present on thecomputing device.

For instance, audio content service application discovery may entailchecking a registry or list of applications installed on the personaldevice for audio content service applications that are on the list ofsupported audio content services. In one example embodiment, the list ofsupported audio content services maintained by the system may includeapplication identifiers corresponding to each audio content service.These identifiers (or portions thereof) may be the same as those used inthe registry of the personal device. As such, a comparison can be madebetween an identifier for an audio content service in the list ofsupported audio content services and the registry to determine if thereis a match. In an illustrative example, the following system call with,for example, SPOTIFY™ ID equal to “com.spotify.mobile.android.ui” may beused to determine if the SPOTIFY™ application is installed on theANDROID™ device:

ApplicationInfo info=getPackageManager( )

-   -   getApplicationInfo(“com.spotify.mobile.android.ui”, 0);

return appInfo !=null && appInfo.enabled;

In the case a “true” result is received in return, a determination maybe made that the SPOTIFY™ application is installed, while in the case a“false” result is received in return, a determination may be made thatthe SPOTIFY™ application is not installed.

In another instance, determining that an application corresponding tothe first audio content service is present on a computing deviceassociated with the audio system may involve determining an applicationidentifier corresponding to the selected audio content service,executing a system call to request service associated with the firstapplication, receiving a response to the system call, and determiningthat the response indicates the first application is present on thecomputing device.

For instance, some personal device operating systems (e.g., the IOS™operating system from APPLE Inc.) may not publish (or make available toother applications) a readable registry of the installed applications.As such, checking the personal device for applications matching those onthe list of supported audio content services may involve using a messageexchange protocol. In one case, the controller application may use aprotocol (e.g., URL protocol) to test for the presence of a supportedaudio content service on the personal device. For example, thecontroller application may use the following system call to determine ifthe SPOTIFY™ application is installed on the IOS™ device:

NSURL *appURL=[NSURL urlFromString:@“spotify://”];

if ([[UIApplication sharedApplication] canOpenURL:appURL]){

-   -   // Application found    -   }

In this case, if a valid response is received, then a determination maybe made that the SPOTIFY™ application is installed.

If at block 906, a determination is made that the selected applicationis not present on the personal device, the method 900 may proceed backto block 904 (via block 910, discussed below) to select another audiocontent service from the list of supported audio content services.Otherwise, upon determination that an application associated with theselected audio content service is present on the personal device, themethod 900 may proceed to block 908, which may involve registering theaudio content service with the audio system. As suggested previously,registering the audio content service with the audio system may be basedon the determination that the application is present on the personaldevice. In one example, registering the audio content service with theaudio system may further involve determining access requirements forregistering the first audio content service with the audio system,receiving authentication information associated with a user of the audiosystem, and registering the first audio content service with the audiosystem according to the received authentication information.

In one example, access requirements may be required before an audiocontent service can be used in the audio system. For instance, theaccess requirements may include authentication information used toidentify a user's account so that the audio system can provide access topersonalized content or settings, and/or to provide access to “paid”features within an audio content service. In one case, the audio systemmay use a central server to register the audio system with the audiocontent service. In this case, the central server may act as a brokerfor the audio system to enable playback of audio content in the system.In another case, the authentication information may be propagated toplayback and/or control devices in the audio system, so that each devicemay contact the audio content service directly.

In one example, receiving authentication information associated with auser of the audio system may involve prompting the user to provideauthentication information via an interface of the audio system such asthe controller application. In this case, the authentication informationmay be received via the controller applications.

For instance, when attempting to register an audio content service withthe audio system, the audio system may prompt, via the controllerapplication for authentication information to be entered. As such, auser using the controller application may input the authenticationinformation to enable the audio system to access the user's audiocontent services. In one example, the registration information mayinclude a username, a password, or a username/password combination. Onceentered by the user, the authentication information may be stored in asecure location so that the audio system may use the registrationinformation to access the account directly from the audio contentservice. The authentication information may be stored, for example, on acontrol device, on a playback device, on a storage device (e.g., PC,Mac™, NAS, etc.) on the local network, in the “cloud” over the Internet,or any combination thereof.

In another example, registering the audio content service with the audiosystem may involve receiving an authentication “token” from the firstapplication corresponding to the first audio content service, andregistering the first audio content service with the audio systemaccording to the received authentication token.

In one example, where a token-based authentication mechanism isimplemented, the user may not be required to enter credentials. Instead,the controller application may interact with the audio content serviceapplication for the audio content service, and receive from the audiocontent service application a corresponding authentication token, orunique identifier that references the user account. The audio system maythen use the token to access the account directly from the audio contentservice. In one example embodiment, the token may have a duration ofvalidity (e.g., 15 min, 1 hour, 4 hours, 8 hours, 1 month, etc.) andmust be renewed periodically by the audio content service application.The controller may initiate the renewal by querying the audio contentservice application for a new token when a current token has expired, orthe audio content service application may periodically refresh the tokento the controller application. Other renewal procedures exist.

In another example embodiment, the token may be valid as long as thecontroller is a part of the system. For example, the controller mayperiodically (e.g., once a day, once a week, etc.) register itself withthe audio system such that services that were added to the system viathe controller are maintained. In another example embodiment, the tokenvalidity may be determined using a combination of these mechanisms.

In one case, different registration mechanisms may be available for acontroller application and the associated audio system such that thedifferent registration mechanisms may be applied according to differentscenarios. In a home setup scenario, registration by having a user enterauthentication information may be appropriate. In another scenario, thetime-based token authentication (or credential) mechanism discussedabove may be appropriate because it may allow users to temporarily usetheir audio content services on an audio system. In particular, in aretail (or Point of Sale) environment, such a mechanism would allow apotential customer to “test” the system in a personal way using theirown audio content, without having to remove their account credentialswhen they are done trying out the system. In addition, not having toenter potentially sensitive username or password information mightencourage more user participation in a shared retail environment.Further, in a home or personal environment, a time-based token mechanismallows guests to use their audio content services while they are usingthe system.

Referring back to block 910, upon registering the selected audio contentservice with the audio system, block 910 may involve making adetermination as to whether all audio content services in the list ofsupported audio content services have been checked (or selected at leastonce for potential registration). If a determination is made that notall audio content services in the list have been checked, then themethod 900 may proceed back to block 904 to select another, notpreviously selected audio content service. If a determination is madethat all audio content services in the list have been checked, then theregistration of audio content services with the audio system may becomplete.

In one embodiment, the ability to automatically add audio contentservices to an audio system can simplify the audio setup of such asystem. In one example, as described above, the controller applicationmay discover multiple audio content service applications that arepresent on the personal device and automatically register each of theaudio content services with the audio system. In the case tokenauthentication is used, registration of the audio content services mayfurther be done without any user interaction.

FIG. 10 shows an example block diagram of an example communicationinterface between a personal device 1020 and audio content services in acloud network 1050. As shown in FIG. 10, the personal device 1020 mayinclude a user interface 1022 in communication with a controllerapplication 1024. The controller application 1024 may be incommunication with a local music source 1034, and may add content fromthe local music source 1034 to the audio system for playback. Thecontroller application 1024 may also be in communication with anapplication registry 1032 listing all the applications installed on thepersonal device. As such, the application registry 1032 may be accessedfor determining whether an audio content service application, such asaudio service 1 application 1026, audio service 2 application 1028, oraudio service 3 application 1030 is present on the personal device 1020.The controller application 1024 may then be in communication with audioservice 1 application 1026, audio service 2 application 1028, audioservice 3 application 1030 to retrieve information needed forregistering the audio system associated with the controller application1024 with corresponding audio service servers 1052, 1054, and 1056 asshown in the cloud network 1050. The retrieved information, as discussedpreviously, may include user account information, or token-basedauthentication information.

As shown in FIG. 10, the user interface 1022 generally interacts withonly the controller application 1024, thereby illustrating that a usermay access all the local audio content as well as the supported andavailable audio content services in the cloud network through a singleapplication on the personal device. Further, as discussed above, thecontroller application 1024 may be configured to communicate with thesupported and available audio content services in the cloud network viathe audio content service applications on the personal device 1020,thereby simplifying and expediting the setting up of an audio systemwith audio content services a user may already be registered with andenjoying.

Once an audio content service is registered with the audio system,content from the registered audio content service may become availablefor rendering by the audio system. In one example, the content may beavailable to any user of the audio system. For instance, the audiocontent service may be available to any user of the audio system and mayappear as a system service, rather than an individual service. In anillustrative example, while an individual's RHAPSODY® service that hasbeen added to the audio system may appear as a RHAPSODY® service on theuser interface of the controller application, individual preferencessuch as “My Artists,” “My Albums,” or “My Channels” may be retained andavailable. In another example, the local library of the personal devicethat has been added to the audio system may be indexed and displayed inthe “music library,” intermixed with other audio content stored in otherlocations on the network. In these examples, any user with access to theaudio system may access the content provided by the RHAPSODY® service orby the local library.

In another example, content from the registered audio content servicemay become available to only a subset of the users of the audio system.For instance, an audio content service, once added to the audio system,may only be available to the user who added the audio source. In anillustrative example, the controller that was used to add the audiocontent service to the system may be used to identify the user, and onlyusers using the particular controller may be allowed to access thoseaudio content sources.

In either example, the controller application and audio system may beconfigured such that any user of the audio system may modify accountpreferences or influence the audio preferences of the accessed accountby selecting tracks or stations within the account. For example, whenusing the RHAPSODY® service, any user of the audio system may modify thecontent of their personalized music library (i.e., “My Library”) byselecting “Add Album to My Library,” “Add Track to My Library,” and soon, whether or not the particular user is the user the RHAPSODY® serviceaccount is registered to. On the other hand, in another case, thecontroller application and audio system may be configured such that onlythe “account owner” may modify or influence the preferences.

VIII. Conclusion

The descriptions above disclose various example systems, methods,apparatus, and articles of manufacture including, among othercomponents, firmware and/or software executed on hardware. However, suchexamples are merely illustrative and should not be considered aslimiting. For example, it is contemplated that any or all of thesefirmware, hardware, and/or software components can be embodiedexclusively in hardware, exclusively in software, exclusively infirmware, or in any combination of hardware, software, and/or firmware.Accordingly, while the following describes example systems, methods,apparatus, and/or articles of manufacture, the examples provided are notthe only way(s) to implement such systems, methods, apparatus, and/orarticles of manufacture.

As provided in the embodiments discussed above, during setup of an audiosystem with audio content services, audio content services a user isregistered with may be determined based on audio content serviceapplications present on the user's controller device. In one case, thedetermined audio content services may then be provided to the userduring setup visually ahead of other available audio content servicesfor the user to select. In another case, the determined audio contentservices may be automatically registered. In either case, as a result ofthe assisted audio content service setup, the user may spend less timeconfiguring the audio system, and begin enjoying audio content sooner.In addition, while the above embodiments apply generally toregistrations of audio content services with an audio system, one havingordinary skill in the art will appreciate that the disclosed conceptsmay also be applied towards registration of video content services, suchas NETFLIX® and HULU® with multimedia systems, which may include or becoupled with audio systems such as those discussed herein.

In one aspect, a method is provided. The method involves receiving alist of a plurality of audio services supported by an audio system,selecting a first audio service from the list of plurality of audioservices, determining that a first application corresponding to thefirst audio service is present on a computing device associated with theaudio system, and causing the first audio service to be registered withthe audio system based on the determination that the first applicationis present on the computing device.

In another aspect, a system is provided. The system includes at leastone processor, a non-transitory computer readable medium, and programinstructions stored on the non-transitory computer readable medium. Theprogram instructions are executable by the at least one processor toperform functions including receiving a list of a plurality of audioservices supported by an audio system, selecting a first audio servicefrom the list of plurality of audio services, determining that a firstapplication corresponding to the first audio service is present on acomputing device associated with the audio system, and causing the firstaudio service to be registered with the audio system based on thedetermination that the first application is present on the computingdevice.

In yet another aspect, a non-transitory computer readable medium havinginstructions stored thereon is provided. The instructions are executableby a computing device to cause the computing device to perform functionsincluding receiving a list of a plurality of audio services supported byan audio system, selecting a first audio service from the list ofplurality of audio services, determining that a first applicationcorresponding to the first audio service is present on a computingdevice associated with the audio system, and causing the first audioservice to be registered with the audio system based on thedetermination that the first application is present on the computingdevice.

Additionally, references herein to “embodiment” means that a particularfeature, structure, or characteristic described in connection with theembodiment can be included in at least one example embodiment of theinvention. The appearances of this phrase in various places in thespecification are not necessarily all referring to the same embodiment,nor are separate or alternative embodiments mutually exclusive of otherembodiments. As such, the embodiments described herein, explicitly andimplicitly understood by one skilled in the art, can be combined withother embodiments.

The specification is presented largely in terms of illustrativeenvironments, systems, procedures, steps, logic blocks, processing, andother symbolic representations that directly or indirectly resemble theoperations of data processing devices coupled to networks. These processdescriptions and representations are typically used by those skilled inthe art to most effectively convey the substance of their work to othersskilled in the art. Numerous specific details are set forth to provide athorough understanding of the present disclosure. However, it isunderstood to those skilled in the art that certain embodiments of thepresent disclosure can be practiced without certain, specific details.In other instances, well known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the embodiments. Accordingly, the scope of thepresent disclosure is defined by the appended claims rather than theforgoing description of embodiments.

When any of the appended claims are read to cover a purely softwareand/or firmware implementation, at least one of the elements in at leastone example is hereby expressly defined to include a tangible mediumsuch as a memory, DVD, CD, Blu-ray, and so on, storing the softwareand/or firmware.

We claim:
 1. A method comprising: maintaining, by a computing device,(i) data representing a list of audio services from which an audiosystem can receive streaming music and (ii) data indicating that a firstaudio service is registered with the audio system, wherein the list ofaudio services includes at least the first audio service; receiving, bythe computing device, data indicating a second audio service added tothe list of audio services, wherein an application on the computingdevice is configured to receive streaming music from the second audioservice using particular authentication information; providing, fordisplay on a graphical interface of the computing device, a graphicalrepresentation of the second audio service, wherein the graphicalrepresentation indicates that at least a portion of the particularauthentication information is available from the application; detecting,via the graphical interface, a selection of the second audio service;and causing, by the computing device, the audio system to receivestreaming music from the second audio service using the particularauthentication information.
 2. The method of claim 1, furthercomprising: after receiving the data indicating the second audio serviceadded to the list of audio services, storing, by the computing device,data representing an updated list of audio services from which the audiosystem can receive streaming music, wherein the updated list of audioservice includes at least (i) the first audio service and (ii) thesecond audio service.
 3. The method of claim 1, wherein causing theaudio system to receive streaming music from the second audio serviceusing the particular authentication information further comprises:causing the audio system to receive the particular authenticationinformation from the application; and causing the audio system toreceive streaming music from the second audio service using theparticular authentication information received from the application. 4.The method of claim 1, wherein causing the audio system to receivestreaming music from the second audio service using the particularauthentication information comprises: providing, for display on agraphical interface, a prompt to provide at least a portion of theparticular authentication information; receiving, via the graphicalinterface, at least the portion of the particular authenticationinformation; and causing the audio system to receive streaming musicfrom the second audio service using at least the received portion of theparticular authentication information.
 5. The method of claim 1, whereinthe particular authentication information comprises a combination of ausername and password, and wherein providing, for display on thegraphical interface, the graphical representation of the second audioservice comprises causing the graphical interface to display anindication that one or more of: (i) the username, or (ii) the passwordis available from the application.
 6. The method of claim 1, furthercomprising: before causing the audio system to receive streaming musicfrom the second audio service using the particular authenticationinformation, registering the second audio service with the audio systemaccording to the particular authentication information.
 7. The method ofclaim 1, wherein causing the audio system to receive streaming musicfrom the second audio service using the particular authenticationinformation comprises: receiving from the application an authenticationtoken that indicates the particular authentication information; andcausing the audio system to receive streaming music from the secondaudio service using the particular authentication information indicatedby the authentication token.
 8. The method of claim 1, furthercomprising: after causing the audio system to receive streaming musicfrom the second audio service using the authentication information,causing the audio system to receive streaming music from the first audioservice.
 9. The method of claim 1, wherein the data indicating thesecond audio service added to the list of audio services comprises anupdated list of audio services from which the audio system can receivestreaming music, and wherein the updated list of audio services includesat least the second audio service.
 10. The method of claim 1, furthercomprising: before causing the audio system to receive streaming musicfrom the second audio service using the particular authenticationinformation, determining that the application on the computing device isconfigured to receive streaming music from the second audio serviceusing the particular authentication information.
 11. The method of claim10, wherein determining that the application on the computing device isconfigured to receive streaming music from the second audio serviceusing the authentication information comprises: determining a particularapplication identifier corresponding to the second audio service;comparing the particular application identifier against a list ofcomputing device application identifiers, wherein each computing deviceapplication identifier in the list of application identifierscorresponds to an computing device application on the computing device;and determining that the particular application identifier matches oneof the computing device application identifiers in the list of computingdevice application identifiers.
 12. The method of claim 10, whereindetermining that the application present on the computing device isconfigured to receive streaming music from the second audio using theauthentication information comprises: determining a particularapplication identifier corresponding to the second audio service; basedon the particular application identifier, executing a system call torequest service associated with the particular application; receiving aresponse to the executed system call, the response indicating that theparticular application is present on the computing device.
 13. Anon-transitory computer readable medium having stored thereininstructions executable by one or more processors to cause the computingdevice to perform operations comprising: maintaining (i) datarepresenting a list of audio services from which an audio system canreceive streaming music and (ii) data indicating that a first audioservice is registered with the audio system, wherein the list of audioservices includes at least the first audio service; receiving dataindicating a second audio service added to the list of audio services,wherein an application on the computing device is configured to receivestreaming music from the second audio service using particularauthentication information; causing a graphical interface to display agraphical representation of the second audio service, wherein thegraphical representation indicates that at least a portion of theparticular authentication information is available from the application;detecting, via the graphical interface, input data indicating aselection of the second audio service; and causing the audio system toreceive streaming music from the second audio service using theparticular authentication information.
 14. The computing device of claim13, wherein the program logic is further executable by the at least oneprocessor to: after receiving the data indicating the second audioservice added to the list of audio services, store data representing anupdated list of audio services from which the audio system can receivestreaming music, wherein the updated list of audio service includes atleast (i) the first audio service and (ii) the second audio service. 15.The computing device of claim 13, wherein causing the audio system toreceive streaming music from the second audio service using theparticular authentication information further comprises: causing theaudio system to receive the particular authentication information fromthe application; and causing the audio system to receive streaming musicfrom the second audio service using the particular authenticationinformation received from the application.
 16. The computing device ofclaim 13, wherein causing the audio system to receive streaming musicfrom the second audio service using the particular authenticationinformation comprises: provide a prompt to provide at least a portion ofthe particular authentication information; receive, via the graphicalinterface, at least the portion of the particular authenticationinformation; and cause the audio system to receive streaming music fromthe second audio service using at least the received portion of theparticular authentication information.
 17. The computing device of claim13, wherein the particular authentication information comprises acombination of a username and password, and wherein providing, fordisplay on the graphical interface, the graphical representation of thesecond audio service comprises causing the graphical interface todisplay an indication that one or more of: (i) the username, or (ii) thepassword is available from the application.
 18. The computing device ofclaim 13, wherein the data indicating the second audio service added tothe list of audio services comprises an updated list of audio servicesfrom which the audio system can receive streaming music, and wherein theupdated list of audio services includes at least the second audioservice.
 19. The computing device of claim 13, wherein the program logicis further executable by the at least one processor to: before causingthe audio system to receive streaming music from the second audioservice using the particular authentication information, determiningthat the application on the computing device is configured to receivestreaming music from the second audio service using the particularauthentication information.
 20. A computing device comprising: agraphical interface; a network interface; at least one processor; a datastorage; and a program logic stored in the data storage and executableby the at least one processor to: maintain, by a computing device, (i)data representing a list of audio services from which an audio systemcan receive streaming music and (ii) data indicating that a first audioservice is registered with the audio system, wherein the list of audioservices includes at least the first audio service; receive, by thecomputing device, data indicating a second audio service added to thelist of audio services, wherein an application on the computing deviceis configured to receive streaming music from the second audio serviceusing particular authentication information; cause the graphicalinterface to display a graphical representation of the second audioservice, wherein the graphical representation indicates that at least aportion of the particular authentication information is available fromthe application; detect, via the graphical interface, a selection of thesecond audio service; and cause, by the computing device, the audiosystem to receive streaming music from the second audio service usingthe particular authentication information.